package entities;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
@Entity
public class OrdenCompraCC implements Serializable{
	private static final long serialVersionUID = 1L;
	private String fecha;
	@Id
	private String nroOrdenCompra;
	@OneToOne
	private Cliente cliente;
	@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY)
	private List<ItemOrdenCompraCC> itemsOCCC;
	
	public OrdenCompraCC(OrdenCompraCCVO ordenCompraCCVO) {
		this.fecha=ordenCompraCCVO.getFecha();
		this.nroOrdenCompra=ordenCompraCCVO.getNroOrdenCompra();
		this.cliente.setCuit(ordenCompraCCVO.getCliente().getCuit());
		this.cliente.setDireccion(ordenCompraCCVO.getCliente().getDireccion());
		this.cliente.setRazonSocial(ordenCompraCCVO.getCliente().getRazonSocial());
		this.itemsOCCC = new ArrayList<ItemOrdenCompraCC>();
		for (ItemOrdenCompraCCVO itemOrdenCompraCCVO : ordenCompraCCVO.getItemsOCCC()) {
			ItemOrdenCompraCC itemOrdenCompraCC = new ItemOrdenCompraCC();
			itemOrdenCompraCC.setCantidad(itemOrdenCompraCCVO.getCantidad());
			itemOrdenCompraCC.setNroItem(itemOrdenCompraCCVO.getNroItem());
			Rodamiento rodamiento = new Rodamiento(itemOrdenCompraCCVO.getRodamiento());
			itemOrdenCompraCC.setRodamiento(rodamiento);
		}
	}
	
	public String getFecha() {
		return fecha;
	}
	public void setFecha(String fecha) {
		this.fecha = fecha;
	}
	public String getNroOrdenCompra() {
		return nroOrdenCompra;
	}
	public void setNroOrdenCompra(String nroOrdenCompra) {
		this.nroOrdenCompra = nroOrdenCompra;
	}
	public Cliente getCliente() {
		return cliente;
	}
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}
	public List<ItemOrdenCompraCC> getItemsOCCC() {
		return itemsOCCC;
	}
	public void setItemsOCCC(List<ItemOrdenCompraCC> itemsOCCC) {
		this.itemsOCCC = itemsOCCC;
	}
	
	

}
